package Day20;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Demo05 {
    public static void main(String[] args) {
        //周期任务  定长线程池
        //1.判断是否存在空闲线程
        //2.存在则使用
        //3.不存在空闲线程则判断线程池是否满了，不满则创建线程放入线程池然后使用
        //满了则等待

        //周期任务执行时
        //定时执行
        //1.定时执行一次
        //参数1.  定时执行的任务
        //参数2.  时长数字
        //参数3.  时长数字的时间单位
//        service.schedule(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("锄禾日当午");
//            }
//        },5, TimeUnit.SECONDS);//五秒钟后执行

        ScheduledExecutorService service = Executors.newScheduledThreadPool(2);
        //周期性执行任务
        //参数1. 任务
        //参数2. 延迟时长数字（第一次执行在什么时间以后）
        //参数3. 周期时长数字（每隔多久执行一次）
        //参数4. 时长数字单位
        service.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                System.out.println("锄禾日当午");
            }
        },5,1,TimeUnit.SECONDS);//五秒开始执行，每隔一秒执行一次
    }
}
